/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * NuevoPedido.java
 *
 * Created on Mar 11, 2011, 5:21:29 PM
 */

package administrador;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

/**
 *
 * @author daniel1.Silva
 */
public class NuevoPedido extends javax.swing.JFrame {

    Conexion conexion;
    int bodega;
    Usuario user;
    AdminPedReposicion apr;

    /** Creates new form NuevoPedido */
    public NuevoPedido(Conexion conEnt,int bEnt,Usuario uEnt,AdminPedReposicion aprEnt) {
        conexion=conEnt;
        bodega=bEnt;
        user=uEnt;
        apr=aprEnt;
        
        initComponents();
        configuroVentana();
    }

    public void configuroVentana(){
        String fecha=new java.sql.Date(System.currentTimeMillis()).toString();
        txt_fecha.setText(fecha);
        setBounds(100,100,500,300);
        setVisible(true);

        //Cargo numero de pedido nuevo
        numeroFactura();
    }

     public int numeroFactura(){
           int numeroPedido=0;


         String IPCliente ="174.136.152.21";// "174.136.152.21";
          String nombre = "sexyusuario";//"daniel1";
          String password = "yxes1984";
          String dbcliente = "sexylocuras";
          String puerto = "3306";


          //Realizo la conexion a la base de datos cliente:
          Conexion conexionWeb = new Conexion();

          
          if (!conexionWeb.conectarBase(nombre, password, puerto, dbcliente, IPCliente)) {
             //System.out.println("No pudo establecer la conexion primera");
             // JOptionPane.showMessageDialog(panelAct, "No se pudo establecer conexion con la base de datos del Internet !!", "Informacion", JOptionPane.WARNING_MESSAGE);

          } else {



      
        try{
            ResultSet r=conexionWeb.consultarBase("select max(codigo)  FROM ped_reposicion");
            r.next();
            int numero=r.getInt(1);
            numero+=1;

           //System.out.println("Numero Factura Generado: "+numero);
            txt_cod.setText(String.valueOf(numero));



            numeroPedido=numero;
        } catch(java.sql.SQLException e){};

              
          }




        return numeroPedido;
    }



    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        txt_cod = new javax.swing.JTextField();
        txt_fecha = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        txt_obs = new javax.swing.JTextArea();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setName("Form"); // NOI18N

        org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(administrador.AdministradorApp.class).getContext().getResourceMap(NuevoPedido.class);
        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(resourceMap.getString("jPanel1.border.title"))); // NOI18N
        jPanel1.setName("jPanel1"); // NOI18N

        jLabel1.setText(resourceMap.getString("jLabel1.text")); // NOI18N
        jLabel1.setName("jLabel1"); // NOI18N

        jLabel2.setText(resourceMap.getString("jLabel2.text")); // NOI18N
        jLabel2.setName("jLabel2"); // NOI18N

        jLabel3.setText(resourceMap.getString("jLabel3.text")); // NOI18N
        jLabel3.setName("jLabel3"); // NOI18N

        txt_cod.setText(resourceMap.getString("txt_cod.text")); // NOI18N
        txt_cod.setEnabled(false);
        txt_cod.setName("txt_cod"); // NOI18N
        txt_cod.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txt_codActionPerformed(evt);
            }
        });

        txt_fecha.setEditable(false);
        txt_fecha.setText(resourceMap.getString("txt_fecha.text")); // NOI18N
        txt_fecha.setName("txt_fecha"); // NOI18N

        jButton1.setText(resourceMap.getString("jButton1.text")); // NOI18N
        jButton1.setName("jButton1"); // NOI18N
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jScrollPane1.setName("jScrollPane1"); // NOI18N

        txt_obs.setColumns(20);
        txt_obs.setRows(5);
        txt_obs.setName("txt_obs"); // NOI18N
        jScrollPane1.setViewportView(txt_obs);

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel1)
                            .addComponent(jLabel3)
                            .addComponent(jLabel2))
                        .addGap(22, 22, 22)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 243, Short.MAX_VALUE)
                            .addComponent(txt_fecha, javax.swing.GroupLayout.DEFAULT_SIZE, 243, Short.MAX_VALUE)
                            .addComponent(txt_cod, javax.swing.GroupLayout.DEFAULT_SIZE, 243, Short.MAX_VALUE)))
                    .addComponent(jButton1, javax.swing.GroupLayout.Alignment.TRAILING))
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(txt_cod, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(8, 8, 8)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(txt_fecha, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel2))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel3)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 70, Short.MAX_VALUE))
                .addGap(18, 18, 18)
                .addComponent(jButton1)
                .addContainerGap())
        );

        getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void txt_codActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txt_codActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_txt_codActionPerformed

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
        // TODO add your handling code here:
        //Saco la bodega actual
        ResultSet respuesta;
        respuesta=conexion.consultarBase("select observaciones  from bodega where cod_bodega="+bodega+";");
        String nombreBodega="";
        try {
            respuesta.beforeFirst();
            respuesta.next();
            nombreBodega=respuesta.getString(1);
        } catch (SQLException ex) {
            Logger.getLogger(NuevoPedido.class.getName()).log(Level.SEVERE, null, ex);
        }
        creoPedidoReposicion();
        sacoBodegaWeb();
        pedidoReposicion rp=new pedidoReposicion(conexion,nombreBodega,user,this.txt_obs.getText(),this.txt_fecha.getText(),this.txt_cod.getText());


    }//GEN-LAST:event_jButton1ActionPerformed
public void creoPedidoReposicion(){
//Creo el registro de pedido de reposicion:
            //Saco la bodega:
            String nombodega="";
            String descripcionb="";
            ResultSet rst=conexion.consultarBase("SELECT * FROM bodega b where cod_bodega="+bodega+";");
            try {
                rst.beforeFirst();
                rst.next();
                nombodega=rst.getString(2);
                descripcionb=rst.getString(3);

            } catch (SQLException ex) {
                Logger.getLogger(NuevoPedido.class.getName()).log(Level.SEVERE, null, ex);
            }


            boolean exito=conexion.insertarDatosR("insert into ped_reposicion values("+txt_cod.getText()+",'"+this.txt_fecha.getText()+"','"+nombodega+" "+descripcionb+"','"+this.txt_obs.getText()+"');");
           boolean exito1=false;
            
           String IPCliente ="174.136.152.21";// "174.136.152.21";
          String nombre = "sexyusuario";//"daniel1";
          String password = "yxes1984";
          String dbcliente = "sexylocuras";
          String puerto = "3306";


  
          Conexion conexionWF = new Conexion();
         if (!conexionWF.conectarBase(nombre, password, puerto, dbcliente, IPCliente)) {
             //System.out.println("No pudo establecer la conexion primera");
             // JOptionPane.showMessageDialog(panelAct, "No se pudo establecer conexion con la base de datos del Internet !!", "Informacion", JOptionPane.WARNING_MESSAGE);

          } else {
            exito1=conexionWF.insertarDatosR("insert into ped_reposicion values("+txt_cod.getText()+",'"+this.txt_fecha.getText()+"','"+nombodega+" "+descripcionb+"','"+this.txt_obs.getText()+"');");
    }

          if(exito&&exito1){
               // JOptionPane.showMessageDialog(this, "Se creo exitosamente la base bodega !!", "Informacion", JOptionPane.WARNING_MESSAGE);
               // this.dispose();
            }else{
                JOptionPane.showMessageDialog(this, "Se produjo un error en la insercion de cabecera de Pedidos de Reposicion !!", "Informacion", JOptionPane.WARNING_MESSAGE);
            }

            apr.muestroPedidos();
}


public void sacoBodegaWeb(){

 //Saco el Inventario de Bodega:
        //Registro el cierre de la factura Web cuando se registra con exito una factura:
           String IPCliente ="174.136.152.21";// "174.136.152.21";
          String nombre = "sexyusuario";//"daniel1";
          String password = "yxes1984";
          String dbcliente = "sexylocuras";
          String puerto = "3306";


          //Realizo la conexion a la base de datos cliente:
          Conexion conexionWF = new Conexion();


           if (!conexionWF.conectarBase(nombre, password, puerto, dbcliente, IPCliente)) {
             //System.out.println("No pudo establecer la conexion primera");
             // JOptionPane.showMessageDialog(panelAct, "No se pudo establecer conexion con la base de datos del Internet !!", "Informacion", JOptionPane.WARNING_MESSAGE);

          } else {
              //Saco los productos de la bodega-internet para llenarlos a los productos de base local
            ResultSet resp=conexionWF.consultarBase("SELECT * FROM productos_locales where id_locales=3 and cantidad>0;");//3=Bodega
            String codigoP = "";
            String nombreP = "";
            String descripcionP = "";
            Double precioP = 0.0;
            int cantP = 0;
            int categP=0;

            int pcontados=conexionWF.obtenerFilas(resp);
            int pinsertados=0;


            try {

                //Limpio la tabla de productos de bodega:
                conexion.actualizarBase("delete FROM productosbodega;");

                resp.beforeFirst();


                   while (resp.next()) {
                       //Saco datos de la bodega:
                       codigoP = resp.getString(2);
                       nombreP = resp.getString(3);
                       descripcionP = resp.getString(4);
                       precioP = resp.getDouble(5);
                       cantP = resp.getInt(6);
                       categP= resp.getInt(7);

                       boolean exito=conexion.insertarDatosR("insert into productosbodega values ('"+codigoP+"','"+nombreP+"','"+descripcionP+"',"+precioP+","+cantP+",0,"+categP+");");

                       if(exito){
                       pinsertados++;

                       }


                   }
               } catch (SQLException ex) {
                   Logger.getLogger(pedidoReposicion.class.getName()).log(Level.SEVERE, null, ex);
               }

            


            if(pinsertados==pcontados){
                JOptionPane.showMessageDialog(this, "Se creo exitosamente la base bodega !!", "Informacion", JOptionPane.WARNING_MESSAGE);
                this.dispose();
            }else{
                JOptionPane.showMessageDialog(this, "Se produjo un error en la creacion !!", "Informacion", JOptionPane.WARNING_MESSAGE);
            }



          }
        try {
            conexionWF.cerrarConexion();
        } catch (Exception ex) {
            Logger.getLogger(NuevoPedido.class.getName()).log(Level.SEVERE, null, ex);
        }

}

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextField txt_cod;
    private javax.swing.JTextField txt_fecha;
    private javax.swing.JTextArea txt_obs;
    // End of variables declaration//GEN-END:variables

}
